Kundenstamm erweitern
Hier geben wir Ihnen ein Tutorial an die Hand, mit dem Sie in einem 4.6C-System ein eigenes Dynpro in den Kundenstamm implementieren können. Diese Funktionalität ist noch nicht komplett durch Customizing einzustellen, man muss etwas tricksen… Komplett verfügbar ist die Erweiterungsmöglichkeit unter Release 4.7.
Ziel
Am Ende der Anleitung sollen Sie einen neuen Tabreiter (Tabstrip) auf den allgemeinen Daten im Kundenstamm haben, in dem Sie eigene Felder zu einem Append der KNA1 anzeigen und ändern können.
Einschränkungen
Die folgenden Anweisungen beziehen sich auf das Release 4.6C. Hierzu müssen Sie als erstes eine Modifikation machen. Zudem müssen Sie eine Funktionsgruppe im Z-Namensraum anlegen. Bei der Verwendung von Funktionsgruppen im erweiterten Namensraum (mit Schrägstrich “/”) funktioniert es leider nicht!!
Es können lediglich drei zusätzliche Tabreiter angelegt werden!
Alternativen
Seit Release 4.7 besteht die Möglichkeit, einen BAdI zu nutzen:
CUSTOMER_ADD_DATA_CS
Zusätzliche Daten bei den Debitoren (Trägerdynpro 4000)
BAdI’s können über Transaktion SE18 angesehen werden. Der BAdI ist gut dokumentiert.
Die Implementierung erfolgt über Transaktion SE19.
Siehe SAP-Hinweis 577502.
Modifikation Include MF02DFT0
In diesem Fall gehen wir davon aus, dass die Funktionsgruppe ZV_KUNDENSTAMMEXIT heisst.
FORM TABSTRIP_INVISIBLE_TABS.
...
CHECK NOT TABSTRIP_ACTIVE IS INITIAL.
CHECK NOT TABSTRIP-TEST IS INITIAL. " Nur im Testfall testen
LOOP AT TABSTRIP_SCREENS. " enthält alle Gruppenrahmen des Tabstrips
TABSTRIP-DYNP = TABSTRIP_SCREENS-SUBSC. "Dynpronummer
TABSTRIP-GBOX = TABSTRIP_SCREENS-GBOX. "Gruppenrahmennummer
*{ INSERT BEGINN
*** Vorabkorrektur
*** Kundenfunktionsgruppe, die in Tabelle TAMLAYA definiert ist
if tabstrip_screens-prog = 'SAPLZV_KUNDENSTAMMEXIT'.
continue.
endif.
*} INSERT ENDE
* Adresse immer zeigen, alles andere überprüfen
IF TABSTRIP-GBOX NE '0001' OR TABSTRIP-ACTUALSEG NE 'LOSEG'
AND NOT TABSTRIP-DYNP IS INITIAL
AND NOT ( TABSTRIP-APPL = 'LOMDBPC-CS' AND
TABSTRIP-GBOX EQ '0016' ).
CALL SCREEN '7999'. " Dummy-Screen für Bestimmung
" der Feldstatus
ENDIF.
ENDLOOP.
CLEAR TABSTRIP-TEST.
TABSTRIP-GBOX = SAVE_GBOX.
ENDFORM. ” tabstrip_invisible_tabs
Anlegen der Funktionsgruppe
Bitte legen Sie die Funktionsgruppe ZV_KUNDENSTAMMEXIT an. In der Funktionsgruppe legen Sie bitte den Subscreen 9000 an. Binden Sie hier die gewünschten Kundenfelder ein.
Tabellenpflege
Die folgenden Tabellen sind von Bedeutung:
- TAMLAY0
- TAMLAY1
- TAMLAYA
Gegebenenfalls müssen die Tabellen mit der SE16 gepflegt werden.
TAMLAYA General Data
Applikation LOMDBPC-GD
Transaktion BPMDGD
In das Feld TAMLAYA-FUNCG ZV_KUNDENSTAMMEXIT eintragen
Mit Transaktion BPMDGD das Layout SAP auf ZNEU kopieren.
Das Layout muss in den Benutzerparametern bekannt gemacht werden. Tragen Sie deswegen unter “System – Eigene Daten” den Parameter DEBITOR_LAYOUT_GD mit dem Wert “ZNEU” ein.
TAMLAY1 Tabreiter
Tragen Sie den neuen Tabreiter 08 “Additional Data” in der Tabelle ein.
(Die Texte stehen in der Tabelle TAMLAY1T).
TAMLAY2 Zuordnung
In der Tabelle TAMLAY2 müssen Sie nun die Zuordnung des Subscreens zum Tabreiter vornehmen:
APPL LOMDBPC-GD
LAYOUT ZNEU
TAB 08
LFD_SUBSCR 1
MGROUP U9000
–> U = Userscreen,
–> 9000 = Dynpronummer in der Funktionsgruppe
Zugriff
Um in der Funktionsgruppe auf die Daten zugreifen zu können, müssen wir uns eines Tricks bedienen, da es leider keine Möglichkeit gibt, an die Daten der KNA1 zu kommen. Wir werden den Dirty-Assign verwenden.
TOP-Include
Als erstes müssen Sie im TOP-Include der Funktionsgruppe ZV_KUNDENSTAMMEXIT die folgenden Anweisungen aufnehmen:
tables kna1.
field-symbols <kna1> structure kna1 default kna1.
Ablauflogik des Subscreen 9000
PROCESS BEFORE OUTPUT.
MODULE STATUS_9000.
*
PROCESS AFTER INPUT.
field kna1-kukla.
MODULE USER_COMMAND_9000.
Coding der Module
MODULE STATUS_9000 output.
PERFORM dynpro_modifizieren_ar IN PROGRAM sapmf02d.
PERFORM rein_pbo.
ENDMODULE. " STATUS_9000 OUTPUT
MODULE user_command_9000 INPUT.
PERFORM raus_pai.
ENDMODULE. " USER_COMMAND_9000 INPUT
FORM rein_pbo.
ASSIGN ('(SAPMF02D)KNA1') TO <kna1>.
kna1 = <kna1>.
ENDFORM.
FORM raus_pai.
<kna1> = kna1.
ENDFORM.
- Interview mit Björn Schulz (Software-Heroes.com) - 3. September 2024
- Daten aus ALV ermitteln - 3. September 2024
- So lange es den SAPGUI noch gibt… - 27. Juni 2024